/**
 * 用户管理相关API接口
 */
import {get, post, put, del } from '../utils/request'
import { API_BASE_URL, API_PREFIX } from './config'

/**
 * 获取用户列表
 * @param {Object} params - 查询参数
 * @param {number} params.current - 当前页码
 * @param {number} params.size - 每页数量
 * @param {string} params.username - 用户名搜索（可选）
 * @returns {Promise<Object>} 返回用户列表数据
 */
export const getUserList = (params) => {
    return get(`${API_BASE_URL}${API_PREFIX.USER}/admin/users/page`, params)
}

/**
 * 获取用户详情
 * @param {number|string} id - 用户ID
 * @returns {Promise<Object>} 返回用户详情
 */
export const getUserDetail = (id) => {
    return get(`${API_BASE_URL}${API_PREFIX.USER}/user/${id}`)
}

/**
 * 更新个人信息（普通用户）
 * @param {Object} userData - 用户数据
 * @returns {Promise<Object>} 返回更新结果
 */
export const updateProfile = (userData) => {
    return put(`${API_BASE_URL}${API_PREFIX.USER}/user/profile`, userData)
}

/**
 * 创建用户
 * @param {Object} userData - 用户数据
 * @param {string} userData.username - 用户名
 * @param {string} userData.email - 邮箱
 * @param {string} userData.password - 密码
 * @param {string} userData.role - 角色
 * @param {string} userData.status - 状态
 * @returns {Promise<Object>} 返回创建结果
 */
export const createUser = (userData) => {
    return post(`${API_BASE_URL}${API_PREFIX.API}/users`, userData)
}

/**
 * 更新用户信息
 * @param {number|string} id - 用户ID
 * @param {Object} userData - 用户数据
 * @returns {Promise<Object>} 返回更新结果
 */
export const updateUser = (id, userData) => {
    return put(`${API_BASE_URL}${API_PREFIX.USER}/admin/users`, userData)
}

/**
 * 删除用户
 * @param {number|string} id - 用户ID
 * @returns {Promise<Object>} 返回删除结果
 */
export const deleteUser = (id) => {
    return del(`${API_BASE_URL}${API_PREFIX.API}/users/${id}`)
}

/**
 * 切换用户状态
 * @param {number|string} id - 用户ID
 * @param {string} status - 新状态
 * @returns {Promise<Object>} 返回切换结果
 */
export const toggleUserStatus = (id, status) => {
    return put(`${API_BASE_URL}${API_PREFIX.API}/users/${id}/status`, { status })
}

/**
 * 批量删除用户
 * @param {Array<number|string>} ids - 用户ID数组
 * @returns {Promise<Object>} 返回批量删除结果
 */
export const batchDeleteUsers = (ids) => {
    return post(`${API_BASE_URL}${API_PREFIX.API}/users/batch-delete`, { ids })
}

/**
 * 获取当前用户的菜单
 * @returns {Promise<Object>} 返回用户菜单数据
 */
export const getUserMenus = () => {
    return get(`${API_BASE_URL}${API_PREFIX.USER}/user/menus`)
}

/**
 * 获取用户统计数据
 * @returns {Promise<Object>} 返回用户统计数据
 * @returns {Object} result - 统计结果
 * @returns {string} result.userId - 用户ID
 * @returns {number} result.approvedArticleCount - 通过审核的文章数量
 * @returns {number} result.totalViewCount - 总浏览量
 */
export const getUserStatistics = () => {
    return get(`${API_BASE_URL}${API_PREFIX.USER}/article/statistics`)
}